#ifndef __JUDGE_FILE_H
#define __JUDGE_FILE_H

#include <zip.h>

struct judge_file {
	struct zip_file *zip;
};

jstatus_t __stdcall judge_file_open(
	struct judge_fs *fs, 
	/* out */ struct judge_file **file, 
	const char *path);

void __stdcall judge_file_close(
	struct judge_fs *fs, 
	struct judge_file *file);

jstatus_t __stdcall judge_file_read(
	struct judge_fs *fs, 
	struct judge_file *file, 
	char *buffer, 
	uint32_t size, 
	/* out */ uint32_t *actual_size);

jstatus_t __stdcall judge_file_find(
	struct judge_fs *fs, 
	/* out */ const char **path, 
	const char *prefix, 
	/* in out */ void **context);

#endif